package cn.fl.repay.service;

import cn.cmm.base.framework.utils.BaseLogUtils;
import cn.fl.repay.vo.InsOfflineRepayDtlVO;
import cn.fl.repay.vo.InsOfflineRepayLogVO;

import java.util.List;

/**
 * @author: leon (lipengd@shiqiao.com)
 * @createDate: 2020/7/2
 * @company: (C) Copyright shiqiao 2020
 * @since: JDK 1.8
 * @description: 线下还款策略类，用来处理不同资管机构之间的差异
 */
public interface OfflineRepayStrategy {
    /**
     * 是否支持该还款类型
     * @param repayType
     * @return
     */
    boolean support(String repayType);
    /**
     * 根据还款类型获取还款明细
     *
     * @param repayType
     * @return
     */
    List<InsOfflineRepayDtlVO> getRepayDtl(String crCntNo, String repayType, String actPayDt);

    /**
     * 校验该还款申请记录和明细是否符合业务要求
     */
    void checkRepayData(InsOfflineRepayLogVO repayLogVO, List<InsOfflineRepayDtlVO> repayDtlList);

}
